Page layout is important for document creation or other applications that display pages of information to users. A page layout system arranges and places information to include text and/or pictures in a manner that is pleasing to the users. Current page layout systems require the users to either use standard form software to drag and drop objects into desired places or use pre-designed templates. These approaches typically require extensive user interaction. For example, the drag and drop solution is time consuming, whereas the template limits page layout options.
Some current solutions also focus on complicated rule sets that are difficult to maintain and understand. For example, since many page layout circumstances cannot be known in advance, a rule-based approach may easily cause error when unanticipated situations occur. Furthermore, while contingencies can in principle be codified, the resulting page layout system is not easily maintainable because the rules can interact with each other in complicated and unforeseen ways.